home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
fdimg
/
oh!.2hd
/
OH!DEN_B.LZH
/
TOOLS
/
ARTPAD
/
ARTPAD.S
Wrap
Text File
|
1995-03-20
|
36KB
|
1,926 lines
*.include tnb.mac
DI macro
ori.w #$0700,sr
.endm
EI macro
andi.w #$F8FF,sr
.endm
SUPER macro
moveq #$81,d0
trap #15
.endm
USER macro
moveq #$81,d0
trap #15
.endm
*データたまりすぎ度 DaKlsetを越えていたらRSをほぼクリアする
DaKl = 7
DaKl2 = 2
.include iocscall.mac
.include doscall.mac
StartStatio:*******************常駐部
SS:
jmp init-SS(a4)
head:
HEAD1 = 'ArtP'
HEAD2 = 'ad05'
.dc.l HEAD1
.dc.l HEAD2
.even
st:
MSD: *---------------------------
* ($24D)[$0934] マウスエミュ
* マウスデータ変更
* a1にワークのアドレスがはいる
MSD_ = $0934.w
tst.w MoEmuMode *MouseEmu $FF:しない
bne MSD_JMP_L
movem.l d0-d3/a0-a3,-(sp)
bsr ChkTablet
bne no_con *非コネクト
****** TEMCALL work
tst.b Data2+3
beq @f
clr.l Data2
@@:
*****モードにより分岐
move.w DrvMode(pc),d0
bne zetta
*************************相対
move.w Conect_(pc),d0 *前の座標がないなら今回は終わり
bmi LL1
move.b Pdata(pc),d2
cmpi.b #2,d2 *筆圧2未満なら終わり
bcs LL1
**X計算
move.w Xdata(pc),d0
lsr.w #2,d0
move.w oldXdata(pc),d1
lsr.w #2,d1
sub.w d1,d0
swap d0
**Y計算
move.w Ydata(pc),d0
lsr.w #2,d0
move.w oldYdata(pc),d1
lsr.w #2,d1
sub.w d1,d0
btst #1,SLW+1
beq @f
*X:Y反転
neg.w d0
swap d0
neg.w d0
swap d0
@@:
btst #0,SLW+1
beq @f
*X:Y反転
swap d0
neg.w d0
@@:
**Y計算
add.b d0,2(a1)
add.b d0,Data2+2 * TEMCALLワーク
**X計算
swap d0
add.b d0,1(a1)
add.b d0,Data2+1 * TEMCALLワーク
bra LL1
*************************絶対
zetta:
move.b 1(a1),d2 **マウスが動いていたら終了
bne LL1
move.b 2(a1),d2
bne LL1
bsr SizeTable
move.w IM(pc),d2
bne zetta2
******************絶対モード1
tst.w $0ade.w *$0ade.w IOCSマウス処理中なら!=0らしい
bne LL1
move.l Xdata2(pc),d1
cmp.l $0ACE.w,d1 *現在のマウス座標
beq LL1 *同じなら終わり
btst.b #1,KeyMod(pc)
beq @f
*--絶対1のキーボード処理
*moveq #$0A,d1 *処理軽減のため..
*IOCS _BITSNS
move.b $800+$A,d2 *[XF1],[XF2]は押されている?
bra zettaKey
@@:
move.l Xdata2(pc),d1
IOCS _MS_CURST
tst.l d0
beq LL1 *おっけー
*d2=0になっている
zettaKey:
btst #6,d2
bne @f *[XF1]
moveq #0,d0
move.w $0AD0.w,d0 *現在のマウスY座標
move.l Xdata2(pc),d1
clr.w d1 *andi.l #$FFFF0000,d1同等
or.l d0,d1
IOCS _MS_CURST *まずX設定
@@: btst #5,d2
bne @f
moveq #0,d1
move.w Ydata2(pc),d1
move.l $0ACE.w,d0 *現在のマウスX座標
clr.w d0 *andi.l #$FFFF0000,d0同等
or.l d0,d1
IOCS _MS_CURST *Y設定
@@:
bra LL1 *おっけー
zetta2: ******************絶対モード2
**X計算
move.w Xdata2(pc),d1
sub.w $0ACE.w,d1 *現在のマウス座標
bpl L_zxpl
*マイナス
neg.w d1
cmp.w d2,d1
bcs @f
move.b d2,d1
@@: neg.b d1
bra L_zxL
L_zxpl: *プラス
cmp.w d2,d1
bcs L_zxL
move.b d2,d1
L_zxL: move.b d1,1(a1)
add.b d1,Data2+1 * TEMCALLワーク
**Y計算
move.w Ydata2(pc),d1
sub.w $0AD0.w,d1 *現在のマウス座標
bpl L_zypl
*マイナス
neg.w d1
cmp.w d2,d1
bcs @f
move.b d2,d1
@@: neg.b d1
bra L_ZZ
L_zypl: *プラス
cmp.w d2,d1
bcs L_ZZ
move.b d2,d1
L_ZZ: move.b d1,2(a1)
add.b d1,Data2+2 * TEMCALLワーク
LL1: move.w Xdata(pc),oldXdata
move.w Ydata(pc),oldYdata
move.w #0,Conect_ *コネクト
*******************************トリガーチェック
move.w BotMod(pc),d0
bne BoRev
*0:プレス=左クリック
*moveq #0,d0
btst #7,Bdata
beq @f
ori.b #$2,d0
@@: btst #6,Bdata
beq @f
ori.b #$1,d0
@@: bra Trg_LE
BoRev:
subq.w #1,d0
bne Bo98P
*1:プレス=右クリック
*moveq #0,d0
btst #7,Bdata
beq @f
ori.b #$1,d0
@@: btst #6,Bdata
beq @f
ori.b #$2,d0
@@: bra Trg_LE
Bo98P:
*2: PC9801P
moveq #0,d0
btst #6,Bdata
beq Trg_LE *プレスしていないならおわり
btst #7,Bdata
beq @f
ori.b #$2,d0
bra Trg_LE
@@: ori.b #$1,d0
Trg_LE:
or.b d0,(a1)
or.b d0,Data2 * TEMCALLワーク
bra EE
no_con:
clr.l Data2 *TEMCALL work
clr.w Bdata *トリガー
move.w #-1,Conect_
EE:
movem.l (sp)+,d0-d3/a0-a3
MSD_JMP_L:
****************************キーボード処理
movem.l d0-d1,-(sp)
btst.b #1,KeyMod(pc)
beq MJKL1
*moveq #$0A,d1 *処理軽減のため..
*IOCS _BITSNS
move.b $800+$A,d0 *[XF1],[XF2]は押されている?
btst #5,d0
beq @f
clr.b 2(a1)
@@: btst #6,d0
beq @f
clr.b 1(a1)
@@:
MJKL1:
btst.b #0,KeyMod(pc)
beq MJKL2
*moveq #$E,d1
*IOCS _BITSNS
move.b $800+$E,d0
tst.b d0
beq MJKL2
cmp.b SftKey(pc),d0 *シフトとなるキーは押されているか?
bne MJKL2
*moveq #$A,d1
*IOCS _BITSNS
move.b $800+$A,d0
btst #7,d0
beq @f
clr.w DrvMode *相対モード
clr.w MoEmuMode
bsr RSINIT
bra MJKL2
@@:
*moveq #$B,d1
*IOCS _BITSNS
move.b $800+$B,d0
btst #0,d0
beq @f
move.w #$FF,DrvMode *絶対モード
clr.w MoEmuMode
bsr RSINIT
bra MJKL2
@@:
btst #1,d0
beq @f
clr.w DrvMode *エミュ無し
move.w #$00FF,MoEmuMode
bsr RSINIT
*bra MJKL2
@@:
MJKL2:
movem.l (sp)+,d0-d1
MSD_JMP:
jmp $00000000.l *本来のルーチンへ
ChkTablet:*--------------------------------
* 心臓部
* テーブル設定
* タブレットがないと出来ない
* 破壊 d0-d3/a0-a3
*[戻り値] beq コネクト(データを送ってきている) = テーブル作成(そのまま)
* bne 非コネクト(ペン浮いている)
bsr LOF232C__
cmpi.w #7,d0
bcs CT_con **** 7個未満なので今回は終わり
@@:
**** DaKlset以上はおおすぎなので多少消す!?
cmpi.w #7*DaKl+1,d0
bcs CTno_L0
moveq #7*(DaKl-1)-1,d1
@@:
bsr INP232C__
dbra d1,@b
bsr LOF232C__ *もう一度数チェック
bra CTno_L1
CTno_L0:
**** DaKl2set以上はおおすぎなので多少消す!? part2
cmpi.w #7*DaKl2+1,d0
bcs CTno_L1
moveq #7*(DaKl2-1)-1,d1
@@:
bsr INP232C__
dbra d1,@b
bsr LOF232C__ *もう一度数チェック
CTno_L1:
move.w d0,d1
subq.w #1,d1 * -1 して dbra対策
CTno_L2:
bsr ISNS232C__
move.w d0,d2
beq CTno_con
andi.w #$00B7,d2
cmpi.w #$00A0,d2 *tab dataのヘッダ?
beq @f
bsr INP232C__ *skipの代わり
dbra d1,CTno_L2
** TABLETのじゃなさそう
bra CTno_con *繋がっていない(RSは違う物?!)
@@:
bsr LOF232C__ *もう一度数チェック
cmp.w #7,d0
bcs CT_con **** 残りが7個未満なので今回は終わり
@@:
lea buf(pc),a0
*** 7こ読み込む
bsr INP232C__
move.b d0,(a0)+
moveq #6-1,d1
@@:
bsr INP232C__
btst #7,d0
bne CTno_con2 *データがおかしい(ずれている?!)
move.b d0,(a0)+
dbra d1,@b
*--データコンバード--*
lea buf(pc),a0
btst.b #6,(a0)
beq CTno_con2 *ペンがタブレット上にない
move.w #-1,PaChk
btst.b #4,3(a0)
sne.b d0
andi.b #$80,d0
move.b d0,Bdata
move.b 6(a0),d0
eori.b #$40,d0
move.b d0,Pdata *プレス
cmp.b PressP(pc),d0
bcs @f
ori.b #$40,Bdata *トリガー
@@:
moveq #0,d0
move.b 1(a0),d0
lsl.w #7,d0
or.b 2(a0),d0
move.w d0,Xdata
moveq #0,d0
move.b 4(a0),d0
lsl.w #7,d0
or.b 5(a0),d0
move.w d0,Ydata
move.w #0,Conect *コネクト
rts
CT_con:
tst.w PaChk
beq @f
move.w #0,Conect *コネクト
rts
@@:
move.w #-1,Conect
rts
CTno_con:
CTno_con2:
clr.w PaChk
clr.w Bdata *トリガー
EI
move.w #-1,Conect *非コネクト
rts
PaChk: .dc.w 0 *-1:付いている 0:離れている
SizeTable:*--------------------------------
* 画面絶対座標計算(Xdata2 Ydata2 設定)
*
* Xdata Ydata 設定してから呼ぶ
*[戻り値] a3=minX minY maxX maxY
*
*破壊 d0-d3 a3
WkMx = 157
WkMy = 315
*このタブレットは5040*3780の精度があるので
* 5040:3780 = 4:3
*68のディスプレイは768*512
* 768*512 = 3:2
*なのでX,Yそれぞれ157,315余白を付け
* 4725:3150=3:2 とする
*また、余白がないと端の座標の指定が困難
move.l #5040-WkMx-WkMx,d3 *X補佐値
move.w ZetMod(pc),d2 *絶対座標移動範囲モード
bne @f
**絶対座標範囲=0
lea $0A9A.w,a3
bra zzST
@@: subq #1,d2
bne zzLL1
**絶対座標範囲=1
moveq #-1,d1
IOCS _CRTMOD
btst #4,d0
beq @f
lea S768(pc),a3
bra zzST
@@:
btst #1,d0
beq @f
lea S256(pc),a3
bra zzST
@@:
**絶対座標範囲=2
zzLL1: lea S512(pc),a3
zzST:
move.w (a3),d0 *Xmin = 0 か?
bne @f
move.w 2(a3),d0 *Ymin = 0 か?
bne @f
move.w 4(a3),d0 *Xmax = Y=max か?
cmp.w 6(a3),d0
bne @f
btst.b #1,$00E80029
beq @f
*CRTC R20 は 768になっている!!
move.l #(3780-WkMy-WkMy),d3 *X補佐値2
@@:
**X計算
move.w 4(a3),d0 *X max
sub.w (a3),d0 *X min *d0=幅
move.w Xdata(pc),d1
sub.w #WkMx,d1
bcc @f
moveq #0,d1
bra L_zx
@@: cmp.w d3,d1
bcs L_zx
move.w d3,d1
L_zx:
mulu.w d0,d1
divu.w d3,d1
add.w (a3),d1 *目標X座標
move.w d1,Xdata2
**Y計算
move.w 6(a3),d0
sub.w 2(a3),d0 *d0=幅
move.w Ydata(pc),d1
sub.w #WkMy,d1
bcc @f
moveq #0,d1
bra L_zy
@@: cmpi.w #3780-WkMy-WkMy,d1
bcs L_zy
move.w #3780-WkMy-WkMy,d1
L_zy:
mulu.w d0,d1
divu.w #3780-WkMy-WkMy,d1
add.w 2(a3),d1 *目標Y座標
move.w d1,Ydata2
rts
JOYGET:*---------------------------
* ($13B)[$04EC]
* IOCS $3B JOYGET
*
JOYGET_ = $04EC.w
tst.w d1
beq JOYGET_JMP * (0)なら
cmpi.w #1,d1
beq JOYGET_JMP * (1)なら
JOYGET_COM:
*--ドライバー制御 *$8000番台は ArtPad専用!! 非公開!! 使用禁止!!
move.l d1,d0
andi.l #$F000,d0
cmpi.l #$8000,d0
bne JC_L1
*$8000番台
move.l d1,d0
cmpi.w #$8000,d0
beq JOYGET_8000
cmpi.w #$8001,d0
beq JOYGET_8001
cmpi.w #$8002,d0
beq JOYGET_8002
cmpi.w #$8003,d0
beq JOYGET_8003
cmpi.w #$8004,d0
beq JOYGET_8004
cmpi.w #$8005,d0
beq JOYGET_8005
cmpi.w #$8010,d0
beq JOYGET_8010
cmpi.w #$8011,d0
beq JOYGET_8011
cmpi.w #$8012,d0
beq JOYGET_8012
*-- アクセサリモード関係
andi.w #$FFF0,d0
cmpi.w #$8080,d0
beq JOYGET_8080 *ボタンモード変更
cmpi.w #$8090,d0
beq JOYGET_8090 *JOYSTICKモード変更
cmpi.w #$80A0,d0
beq JOYGET_80A0 *キー割り込みモードレベル
*-- マウスエミュレートモード
andi.w #$FF00,d0
cmpi.w #$8100,d0
beq JOYGET_8100 *相対
cmpi.w #$8200,d0
beq JOYGET_8200 *絶対
cmpi.w #$8300,d0
beq JOYGET_8300 *中止
*-- マウスエミュレートモード
cmpi.w #$8400,d0
beq JOYGET_8400 *ボタン
JC_L1:
move.l d1,d0
andi.l #$00F0,d0
cmpi.w #$0080,d0
beq @f
cmpi.w #$0070,d0
bne JG_LL
@@: *-------------- ドライバー TBDRV系コール --------------*/
move.w d1,d0
cmpi.b #$80,d0
beq JOYGET_80
cmpi.b #$81,d0
beq JOYGET_81
cmpi.b #$82,d0
beq JOYGET_82
cmpi.b #$83,d0
beq JOYGET_83
cmpi.b #$8D,d0
beq JOYGET_8D
cmpi.b #$8E,d0
beq JOYGET_8E
cmpi.b #$8F,d0
beq JOYGET_8F
cmpi.b #$70,d0
tst.w MoEmuMode **マウスエミュ禁止
bne @f
beq JOYGET_70
cmpi.b #$71,d0
beq JOYGET_71
cmpi.b #$72,d0
beq JOYGET_72
cmpi.b #$7D,d0
beq JOYGET_7D
cmpi.b #$7F,d0
beq JOYGET_7F
@@:
JG_LL:
moveq #_JOYGET,d0
JOYGET_JMP:
jmp $00000000.l
JOYGET_8000:
*--JOYGET($8000) ドライバー常駐チェック
*
*[戻り値] d0.l = 常駐時; U*$1000000+D*$100000+E*$10000+$5442("TB") 接続
* コールバージョン ver U.DE
*
move.l #$00925442,d0
rts
JOYGET_8001:
*--JOYGET($8001) タブレット接続チェック
*
*[戻り値] $305442("0TB") タブレット接続
* $315442("1TB") ペン接触
*
bsr MEM
move.l #$000000FF,d0
move.l #$00305442,d0
tst.w Conect
bmi @f
move.l #$00315442,d0
@@: rts
JOYGET_8002:
*--JOYGET($8002) 座標値
*
*[戻り値] X*0x10000+Y (X;0-5040,Y;0-3780)
*
bsr MEM
move.l Xdata(pc),d0
rts
JOYGET_8003:
*--JOYGET($8003) 座標値2
*
*[戻り値] X*0x10000+Y (X;0-mx,Y;0-my)
*
*bsr MEM
tst.w MoEmuMode *MouseEmu $FF:しない
beq @f
movem.l d2-d3/a0-a3,-(sp)
bsr ChkTablet
bsr SizeTable
movem.l (sp)+,d2-d3/a0-a3
@@:
move.w DrvMode(pc),d0
bne @f
movem.l d0-d3/a3,-(sp)
bsr SizeTable
movem.l (sp)+,d0-d3/a3
@@: move.l Xdata2(pc),d0
rts
JOYGET_8004:
*--JOYGET($8004) トリガー
*
*[戻り値] bit15:click(pen) bit14:プレス bit6-0:筆圧(生)
*
bsr MEM
moveq #0,d0
move.w Conect(pc),d1
bmi @f
move.w Bdata(pc),d0
@@: rts
JOYGET_8005:
*--JOYGET($8005) トリガー2
*
*[戻り値] bit15:click(pen) bit14:プレス bit6-0:筆圧(変換後)
* 0-127
*
bsr MEM
move.w Conect(pc),d1
bpl @f
moveq #0,d0
rts
@@:
move.w Bdata(pc),d0
andi.l #$007F,d0
sub.b PressP(pc),d0
bcc @f
move.w Bdata(pc),d0
andi.l #$0000C000,d0
rts
@@:
move.w #127,d1
sub.b PressP(pc),d1 *126-64
mulu #127,d0
divu d1,d0
andi.l #$000FFFF,d0
move.w Bdata(pc),d1
andi.w #$C000,d1
or.w d1,d0
rts
JOYGET_8006:
*--JOYGET($8006) トリガー3
*
*[戻り値] 0 Town's TABLETではサポート出来ず
*
moveq #0,d0
rts
JOYGET_8010:
*--JOYGET($8010) ステイタス1
*
*[戻り値] 127*0x10000+2 です。
*
move.l #127*0x10000+10,d0
rts
JOYGET_8011:
*--JOYGET($8011) ステイタス2
*
*[戻り値] 5040*0x10000+3780 です。
*
move.l #5040*0x10000+3780,d0
rts
JOYGET_8012:
*--JOYGET($8012) ステイタス3
*
*[戻り値] 0 Town's TABLETではサポート出来ず
*
moveq #0,d0
rts
JOYGET_8080:
*--JOYGET($808?) ボタンモード
*
*[引数] 0:ノーマル 1:リバース 2;98P $F:モードチェック
*[戻り値] 前のモード
*
move.l #$8080,d0
add.w BotMod(pc),d0
andi.w #$0F,d1
cmpi.w #3,d1
bcc @f
move.w d1,BotMod
@@: rts
JOYGET_8090:
*--JOYGET($809?) JOYGETモード切り替え(エミュレートしない)
*
*[引数] 0:しない 1:する F:モードチェック
*[戻り値] 前のモード
* *ArtPadは機能しない
move.l #$8090,d0
rts
JOYGET_80A0:
*--JOYGET($80A?) キー割り込み処置レベル
*
*[引数] F:モードチェック
*[戻り値] 前のモード
*
move.b KeyMod(pc),-(sp)
move.b d1,d0
andi.w #$000F,d0
cmpi.b #$0F,d0
beq @f
cmpi.w #$0004,d0
bcc @f
move.b d0,KeyMod *0:なし 1:モードのみ 2:XY制限のみ 3:両方
@@: moveq #0,d0
move.b (sp)+,d0
ori.l #$80A0,d0
rts
JOYGET_8100:
*--JOYGET($81??) 相対モードへ
* ?? == 0xFF ならモードチェック
*[戻り値] 前のモード
*
bsr J8_d0_chk *d0に戻り値
cmpi.b #$FF,d1
beq @f
clr.w DrvMode
clr.w MoEmuMode
andi.w #$0003,d1
move.w d1,SLW
bsr RSINIT
@@: rts
JOYGET_8200:
*--JOYGET($82??) 絶対モードへ
* ?? == 0xFF ならモードチェック
*[戻り値] 前のモード
*
move.l d1,d0
andi.w #$00F0,d0
cmpi.w #$0080,d0
beq JOYGET_8280 *
bsr J8_d0_chk *d0に戻り値
cmpi.b #$FF,d1
beq @f
move.w #$FF,DrvMode
clr.w MoEmuMode
andi.w #$007F,d1
move.w d1,IM
bsr RSINIT
@@: rts
JOYGET_8300:
*--JOYGET($83??) エミュレート禁止
* ?? == 0xFF ならモードチェック
*[戻り値] 前のモード
*
bsr J8_d0_chk *d0に戻り値
cmpi.b #$FF,d1
beq @f
clr.w DrvMode
move.w #$00FF,MoEmuMode **禁止
clr.w Bdata *トリガー
move.w #-1,Conect *非コネクト
bsr RSINIT
@@: rts
J8_d0_chk:*
* エミュの戻り値
*
move.w MoEmuMode(pc),d0
beq @f
move.l #$8300,d0 *エミュなし
rts
@@:
move.w DrvMode(pc),d0
bne @f
move.l #$8100,d0 *相対
add.w SLW(pc),d0
rts
@@:
move.l #$8200,d0
add.w IM(pc),d0
rts
JOYGET_8280:
*--JOYGET($828?) 絶対座標移動範囲モード
*
*[引数] 0-3 0: MS_LIMITの範囲による移動範囲を判別。(def.)
* 1: CRTMODによる移動範囲を判別。
* 2: 512x512画面専用
*[戻り値] 前のモード
*
move.l #$8280,d0
add.w ZetMod(pc),d0
andi.w #$0F,d1
cmpi.w #3,d1
bcc @f
move.w d1,ZetMod
@@: rts
JOYGET_8400:
*--JOYGET($84??) ボタンプレスクリック値
*[引数] 16-100
* ?? == 0xFF ならモードチェック
*[戻り値] 前の数値
*
moveq #0,d0
move.b PressP(pc),d0
andi.b #$00FF,d1
bne @f
moveq #$40,d1 *0だったら$40
@@: cmpi.b #101,d1
bcc @f
cmpi.b #16,d1
bcs @f
move.b d1,PressP
@@: rts
*******************
* TBDRV互換
JOYGET_80:*********************
* _TB_CHECK [$80] ドライバーの常駐チェック
* [ In ] なし [ Out ] d0.l ='TDMK'
* d1.w =Ver[整数]*256+Ver[小数]
move.l #'TDMK',d0
move.l #$0100,d1
rts
JOYGET_81:*********************
* _TB_INIT [$81] タブレットイニシャライズ [Tablet Mode On]
* [ In ] なし [ Out ] d0.l =0
JOYGET_8E:*********************
* _TB_RESEV [$8e] ドライバーの占有設定/解除
* [ In ] d2.w=占有モード[0=解除/-1=設定] [ Out ] d0.l =0
* ☆ArtPadでは何もしません。
JOYGET_8F:*********************
* _TB_EXIT [$8f] ドライバーの終了 [Tablet Mode Off]
* [ In ] なし [ Out ] d0.l =0
* ☆ArtPadでは何もしません。
moveq #0,d0
rts
JOYGET_82:*********************
* _TB_POSGT [$82] タブレットステイタス読み込み [Tablet Mode]
* [ In ] なし [ Out ] d0.w =SideSw.[0/255]*256+筆圧[0-127]
* d1.l =XPos[0-5040]*65536+YPos[0-3780]
bsr MEM
tst.w Conect
bpl @f
moveq #0,d0 *非接続
move.l Xdata(pc),d1
rts
@@: move.w Bdata(pc),d0
bmi @f
andi.w #$00FF,d0
move.l Xdata(pc),d1
rts
@@: ori.w #$FF00,d0
move.l Xdata(pc),d1
rts
JOYGET_83:*********************
* _TB_CONECT [$83] タブレット接続チェック
* [ In ] なし [ Out ] d0.l =0[接続してます]
bsr MEM
moveq #-1,d0
tst.w Conect
bmi @f
moveq #0,d0
@@: rts
JOYGET_8D:*********************
* _TB_STATUS [$8d] タブレットステイタス
* [ I n ] なし [ Out ] d0.l ='TDMK'
* d1.l =タブレットID*65536+タブレットドライバーVer
* d2.l =タブレット最大座標[XSize*65536+YSize]
* d6.l =ドライバー占有フラグ
* d7.l =デバイスID['ATPD']
move.l #'TDMK',d0
move.l #$00010100,d1
move.l #5040*65536+3780,d2
move.l #$00000078,d3
clr.l d4
clr.l d5
moveq #$1c,d6
move.l #'ATPD',d7
rts
JOYGET_93:*********************
* _TB_POSGT [$82] タブレットステイタス読み込み(絶対座標) [Tablet Mode]
* [ In ] なし [ Out ] d0.w =SideSw.[0/255]*256+筆圧[0-126]
* d1.l =XPos[0-511/767]*65536+YPos[0-511]
bsr MEM
tst.w Conect
bpl @f
moveq #0,d0 *非接続
move.l Xdata2(pc),d1
rts
@@: move.w Bdata(pc),d0
bmi @f
andi.w #$00FF,d0
move.l Xdata2(pc),d1
rts
@@: ori.w #$FF00,d0
move.l Xdata2(pc),d1
rts
JOYGET_70:*********************
* _ME_CHECK [$70] エミュレーター常駐チェック
* [ I n ] なし [ Out ] d0.l ='MEMK'
* d1.w =Ver[整数]*256+Ver[小数]
* ArtPadでは Ver 1.00として扱われます。
move.l #'MEMK',d0
move.w #$0100,d1
rts
JOYGET_71:*********************
* _ME_INIT [$71] エミュレーターイニシャライズ [Emulation Mode On]
* [ I n ] なし [ Out ] d0.l =0
* ☆ArtPadでは相対座標モードになります。
bsr JOYGET_8100
moveq #0,d0
rts
JOYGET_72:*********************
* _ME_MODE [$72] エミュレートモード選択
* [ I n ] d2.w=エミュレーションモード[0=相対/1=絶対]
* ☆=1 は ArtPadでは絶対モード1になります。
* [ Out ] d0.l =現在のエミュレーションモード
move.w DrvMode(pc),-(sp) *0:相対 $FF:絶対
tst.w d2
bne @f
**相対
bsr JOYGET_8100
bra JG_72
@@:
*絶対
moveq #0,d1
bsr JOYGET_8200
JG_72: move.w (sp)+,d0
andi.l #1,d0
rts
JOYGET_7D:*********************
* _ME_STATUS [$7d] エミュレーションステイタス
* [ I n ] なし [ Out ] d0.l ='MEMK'
* d1.w =Ver[整数]*256+Ver[小数]
* d2.l =使用エリアサイズ[XSize*65536+YSize]
move.l #'MEMK',d0
move.w #$0100,d1
move.l #768*65536+512,d2
rts
JOYGET_7F:*********************
* _ME_EXIT [$7f] エミュレーション終了 [Emulation Mode Off]
* [ I n ] なし [ Out ] d0.l =0
bsr JOYGET_8300
moveq #0,d0
rts
********************SUBR
MEM:
tst.w MoEmuMode *MouseEmu $FF:しない
beq @f
movem.l d0-d3/a0-a3,-(sp)
bsr ChkTablet
movem.l (sp)+,d0-d3/a0-a3
@@: rts
SET232C:*---------------------------
* ($130)[$04C0]
* IOCS $30 SET232C
*
SET232C_ = $04C0.w
* 常駐解除されないようにフック
* 本当は全てフックするべきなのだが、
* RS という物を考えればこれでいいのでは?
* が、TMSIOは上常駐チェックをしていないので注意!!
SET232C_JMP:
jmp $00000000.l
MS_INIT:*---------------------------
* ($170)[$05C0]
* IOCS $70 MS_INIT
MS_INIT_ = $05C0.w
tst.w MoEmuMode *MouseEmu $FF:しない
beq MS_INIT_JMP
bsr RSINIT
MS_INIT_JMP:
jmp $00000000.l
MS_SEL: *-----------------------------
* ($17B)[$05EC]
* IOCS $7B MS_SEL
*
MS_SEL_ = $05EC.w
tst.w MoEmuMode *MouseEmu $FF:しない
bne MS_SEL_JMP
cmpi.w #$104,d1 *RS-232C
beq @f
MS_SEL_JMP:
jmp 0.l
@@:
move.l #'TEMC',d0
rts
MS_LIMIT:*-----------------------------
* ($177)[$05DC]
* IOCS $77 MS_LIMIT
*
MS_LIMIT_ = $05DC.w
tst.w MoEmuMode *MouseEmu $FF:しない
bne MS_LIMIT_JMP
cmpi.l #'TEMC',d1
beq @f
MS_LIMIT_JMP:
jmp 0.l
@@:
cmpi.w #4,d2 *RS-232C
beq @f
bra MS_LIMIT_JMP
@@:
movem.l d1/a0,-(sp)
lea Data2(pc),a0
moveq #0,d0
btst #0,(a0)
beq @f
ori.l #$FF000000,d0
@@: btst #1,(a0)
beq @f
ori.l #$00FF0000,d0
@@: moveq #0,d1
move.b 1(a0),d1
lsl.l #8,d1
or.w d1,d0
move.b 2(a0),d0
move.b #-1,3(a0)
clr.b 1(a0) *移動量はクリア
clr.b 2(a0)
movem.l (sp)+,d1/a0
rts
*----TEMCALL work----*
Data2: .dc.l 0 *MS_LIMIT戻り値用
*読んだら +3.bを-1に!
*********************RS SET**************
RSINIT:
movem.l d0-d1,-(sp)
move.w #$4c07,d1
bsr SET232C__
@@:
bsr ISNS232C__
tst.w d0
beq @f
bsr INP232C__ *skipの代わり
bra @b
@@:
movem.l (sp)+,d0-d1
rts
*----IOCS Org.Calls--------*
SET232C__:
movem.l a0/a5,-(sp)
suba.l a5,a5
moveq #_SET232C,d0
movea.l _SET232C__(pc),a0
jsr (a0) * SET232C
movem.l (sp)+,a0/a5
rts
ISNS232C__:
movem.l a0/a5,-(sp)
suba.l a5,a5
moveq #_ISNS232C,d0
movea.l _ISNS232C__(pc),a0
jsr (a0) * ISNS232C
movem.l (sp)+,a0/a5
rts
INP232C__:
movem.l a0/a5,-(sp)
suba.l a5,a5
moveq #_INP232C,d0
movea.l _INP232C__(pc),a0
jsr (a0) * INP232C
movem.l (sp)+,a0/a5
rts
LOF232C__:
movem.l a0/a5,-(sp)
suba.l a5,a5
moveq #_LOF232C,d0
movea.l _LOF232C__(pc),a0
jsr (a0) * LOF232C
movem.l (sp)+,a0/a5
rts
*----IOCS Org.Addds TABLE--------*
_SET232C__:
.dc.l 0
_ISNS232C__:
.dc.l 0
_INP232C__:
.dc.l 0
_LOF232C__:
.dc.l 0
*----DATA TABLE--------*
Conect:
.dc.w $00 *0:コネクト -1:非コネクト
Conect_:
.dc.w $FF *0:コネクト $FF:非コネクト MS_EMU用
Bdata:
.dc.b $00 *bit7: click(pen) bit6:プレス
Pdata:
.dc.b $00 *bit6-0:0-127
Xdata:
.dc.w $0000 *タブレット X座標 (0-5040)
Ydata:
.dc.w $0000 *タブレット Y座標 (0-960)
oldXdata:
.dc.w $0000 *旧タブレット X座標
oldYdata:
.dc.w $0000 *旧タブレット Y座標
Xdata2:
.dc.w $0000 * X絶対座標 (0-画面による)
Ydata2:
.dc.w $0000 * Y絶対座標 (0-画面による)
buf:
.dc.b 0,0,0,0,0,0,0,0
.even
JogCont:
.dc.w $0000 * 0:
*------WORK------*
*$0A9A =X min
*$0A9C =Y min
*$0A9E =X max
*$0AA0 =Y max
S256:
.dc.w 0,0,255,255
S512:
.dc.w 0,0,511,511
S768:
.dc.w 0,0,767,511
MoEmuMode:
.dc.w $00 *0:する $FF:しない
DrvMode:
.dc.w $00 *0:相対 $FF:絶対
IM:
.dc.w 0 *絶対座標モード時、最大移動値
ZetMod:
.dc.w 0 *絶対座標移動範囲モード 0-2
BotMod:
.dc.w $0000 *0:プレス=左クリック 1:プレス=右クリック
KeyMod:
.dc.b 3 *0:なし 1:モードのみ 2:XY制限のみ 3:両方
SftKey:
.dc.b 8 *シフトキー BITSNS(0xE)
.even
PressP:
.dc.b $40 *クリックと認める数値
.even
SLW:
.dc.w 0 *相対モード時のタブレット向き 0:ノーマル
RSMOD: .dc.l 0 *常駐前の RS状態
EndStatio:*******************常駐部
MarkerChk:*----------------------------------------
* a0 アドレス
*
*[戻り値] bne ちがう
* beq あっている
cmpa.l #$00F00000,a0
bcc @f
cmp.l #HEAD1,(a0)
bne @f
cmp.l #HEAD2,4(a0)
bne @f
cmpa.l a0,a0 *z=1
@@:
rts
InvChk:*----------------------------------------
* a0.l==なら非常駐
* a0.l!=なら常駐
movea.l (a0),a0 *一つ前のポインタ
cmpa.l #$00F00000,a0
bcc IC1
cmp.l #HEAD1,$0104(a0)
bne @f
cmp.l #HEAD2,$0108(a0)
bne @f
adda.w #$100,a0 **[SS]のポインタ
rts
@@: **違う
tst.l (a0) *一つ前のポインタ
bne InvChk *0でない(上へ)
IC1: sub.l a0,a0 *非常駐
rts
AtoI:*----------------------------------------
* a2 アドレス
*[戻り値] d0.l 数字
moveq #0,d0
move.b (a2),d2
cmpi.b #'$',d2
beq AtoHI
@@: move.b (a2)+,d2
subi.b #'0',d2
bcs AIr
cmpi.b #9,d2
bhi AIr
andi.l #$0000FF,d2
mulu #10,d0
add.l d2,d0
bra @b
AIr: subq #1,a2
rts
AtoHI:
*(Hex専用)
moveq #0,d0
move.b (a2)+,d2 *$ skip
@@: move.b (a2)+,d2
subi.b #'0',d2
bcs AHIL1
cmpi.b #9,d2
bhi AHIL1
lsl.l #4,d0
add.l d2,d0
bra @b
AHIL1:
ori.b #$20,d2
subi.b #'a'-'0',d2
bcs AHIL2
cmpi.b #5,d2
bhi AHIL2
lsl.l #4,d0
addi.l #10,d0
add.l d2,d0
bra @b
AHIL2: subq #1,a2
rts
init:*------------------------------------------------------------------
lea usrsp,sp
pea LR1(pc)
DOS _PRINT
addq.w #4,sp
** 常駐チェック **
suba.l a1,a1
SUPER
movea.l d0,a1
moveq #0,d1
bsr InvChk
movea.l a0,a3 *常駐先頭アドレス
movea.l MSD_,a0
subq #MSD-head,a0
bsr MarkerChk
bne @f
bset #0,d1
@@:
movea.l JOYGET_,a0
suba #JOYGET-head,a0
bsr MarkerChk
bne @f
bset #1,d1
@@:
movea.l SET232C_,a0
suba #SET232C-head,a0
bsr MarkerChk
bne @f
bset #2,d1
@@:
movea.l MS_INIT_,a0
suba #MS_INIT-head,a0
bsr MarkerChk
bne @f
bset #3,d1
@@:
movea.l MS_SEL_,a0
suba #MS_SEL-head,a0
bsr MarkerChk
bne @f
bset #4,d1
@@:
movea.l MS_LIMIT_,a0
suba #MS_LIMIT-head,a0
bsr MarkerChk
bne @f
bset #5,d1
@@:
*d1に常駐状態
USER
** 常駐していたらそのデータを引用 **
move.l a3,d0
beq conl
move.w MoEmuMode-SS(a3),MoEmuMode
move.w DrvMode-SS(a3),DrvMode
move.w IM-SS(a3),IM
move.w ZetMod-SS(a3),ZetMod
move.w BotMod-SS(a3),BotMod
move.b KeyMod-SS(a3),KeyMod
move.b SftKey-SS(a3),SftKey
move.b PressP-SS(a3),PressP
move.w SLW-SS(a3),SLW
conl: ** コマンドラインチェック **
tst.b (a2)+ *スキップ
sw: move.b (a2)+,d0
beq keep
cmpi.b #' ',d0
beq sw
cmpi.b #$09,d0 *tab
beq sw
cmpi.b #'-',d0
beq swc
cmpi.b #'/',d0
beq swc
swe: pea LR6(pc)
bra PE *end
swc: **スイッチ判断
move.b (a2)+,d0
beq swe
cmpi.b #'?',d0
beq help
ori.b #$20,d0 *小文字化!
cmpi.b #'r',d0
beq free
cmpi.b #'p',d0
beq pswc
cmpi.b #'d',d0
beq dswc
cmpi.b #'b',d0
beq bswc
cmpi.b #'n',d0
beq nswc
cmpi.b #'k',d0
beq kswc
cmpi.b #'s',d0
beq sswc
cmpi.b #'j',d0
beq jswc
cmpi.b #'i',d0
beq iswc
cmpi.b #'h',d0
beq help
swcerr: pea LR7(pc)
bra PE *end
iswc:***************
move.w #-1,SwcI
bra sw
pswc:***************
bsr AtoI
cmpi.l #$0080,d0
bcc swcerr
move.w #$FF,DrvMode
clr.w MoEmuMode
move.w d0,IM *絶対座標モード時、最大移動値
bra sw
dswc:****************
bsr AtoI
cmpi.l #$0004,d0
bcc swcerr
move.w d0,SLW
clr.w DrvMode
clr.w MoEmuMode
bra sw
nswc:****************
move.w #$00FF,MoEmuMode
clr.w Bdata *トリガー
move.w #-1,Conect *非コネクト
suba.l a1,a1
SUPER
movea.l d0,a1
USER
bra sw
bswc:******************
cmpi.b #'p',(a2)
beq bswcL1
cmpi.b #'P',(a2)
beq bswcL1
bsr AtoI
cmpi.l #$0003,d0
bcc swcerr
move.w d0,BotMod *0:プレス=左クリック 1:プレス=右クリック 2:PC9801P
bra sw
bswcL1:
addq #1,a2
bsr AtoI
tst.b d0
bne @f
moveq #$40,d0
@@: cmpi.b #101,d0
bcc swcerr
cmpi.b #16,d0
bcs swcerr
move.b d0,PressP
bra sw
sswc:*******************
bsr AtoI
cmpi.l #$0003,d0
bcc swcerr
move.w d0,ZetMod
bra sw
jswc:*******************
bra sw *何も無し
kswc:*******************
cmpi.b #'s',(a2)
beq kswcL1
cmpi.b #'S',(a2)
beq kswcL1
bsr AtoI
cmpi.l #$0004,d0
bcc swcerr
move.b d0,KeyMod
bra sw
kswcL1:
bsr AtoHI
cmpi.b #$0010,d0
bcc swcerr
tst.b d0
bne @f
moveq #8,d0
@@: move.b d0,SftKey
bra sw
help:******************
pea LRH(pc)
bra PE *end
keep: ************************** 常駐させる
move.l a3,d0
beq @f
*既に常駐、設定変更
move.w MoEmuMode(pc),MoEmuMode-SS(a3)
move.w DrvMode(pc),DrvMode-SS(a3)
move.w IM(pc),IM-SS(a3)
move.w ZetMod(pc),ZetMod-SS(a3)
move.w BotMod(pc),BotMod-SS(a3)
move.b KeyMod(pc),KeyMod-SS(a3)
move.b SftKey(pc),SftKey-SS(a3)
move.b PressP(pc),PressP-SS(a3)
move.w SLW(pc),SLW-SS(a3)
bsr keepsub
pea LR5(pc)
bra PE *end
@@:
*TBDRVが入っていないか?
tst.w SwcI
bne @f
move.w #$0080,d1
IOCS _JOYGET
cmpi.l #$54444D4B,d0
bne @f
pea LRTB(pc) **すでに
bra PE *end
@@:
**セット
moveq #-1,d1
IOCS _SET232C
move.l d0,RSMOD *常駐前の RS状態
suba.l a1,a1
SUPER
movea.l d0,a1
move.l $400+_SET232C*4 ,_SET232C__
move.l $400+_ISNS232C*4,_ISNS232C__
move.l $400+_INP232C*4 ,_INP232C__
move.l $400+_LOF232C*4 ,_LOF232C__
bsr RSINIT
move.l MSD_,MSD_JMP+2
lea MSD-SS(a4),a0
move.l a0,MSD_
move.l JOYGET_,JOYGET_JMP+2
lea JOYGET-SS(a4),a0
move.l a0,JOYGET_
move.l SET232C_,SET232C_JMP+2
lea SET232C-SS(a4),a0
move.l a0,SET232C_
move.l MS_INIT_,MS_INIT_JMP+2
lea MS_INIT-SS(a4),a0
move.l a0,MS_INIT_
move.l MS_SEL_,MS_SEL_JMP+2
lea MS_SEL-SS(a4),a0
move.l a0,MS_SEL_
move.l MS_LIMIT_,MS_LIMIT_JMP+2
lea MS_LIMIT-SS(a4),a0
move.l a0,MS_LIMIT_
USER
bsr keepsub
pea LRKP(pc)
DOS _PRINT
addq #4,sp
clr.w -(sp)
move.l #EndStatio-StartStatio,-(sp)
DOS _KEEPPR
****************
keepsub:
pea LR2(pc)
DOS _PRINT
addq #4,sp
ksL2:
move.w MoEmuMode(pc),d0
beq ksL3
pea LRZNN(pc) *エミュレートしない
DOS _PRINT
addq #4,sp
bra ksL6
ksL3: move.w DrvMode(pc),d0 *座標モード *0:相対 $FF:絶対
bne @f
pea LRZSO(pc)
bra ksL5
@@: moveq #0,d0
move.w IM(pc),d0 *絶対座標モード時、最大移動値
bne @f
pea LRZZE1(pc)
DOS _PRINT
addq #4,sp
bra ksL4
@@: move.l d0,-(sp)
pea LRZZE2(pc)
jsr _printf_
lea 8(sp),sp
ksL4:
move.w ZetMod(pc),d0 *絶対座標移動範囲モード
add.w d0,d0
add.w d0,d0
lea.l ksT1(pc),a1
move.l 0(a1,d0.w),-(sp)
ksL5:
DOS _PRINT
addq #4,sp
move.w BotMod(pc),d0 *ボタンモード
add.w d0,d0
add.w d0,d0
lea.l ksT2(pc),a1
move.l 0(a1,d0.w),-(sp)
DOS _PRINT
addq #4,sp
moveq #0,d0
move.b PressP(pc),d0
move.l d0,-(sp)
pea ksT2PB(pc)
jsr _printf_
lea 8(sp),sp
ksL6:
*キーモード
btst.b #0,KeyMod(pc)
beq ksL8
pea ksT3__(pc)
DOS _PRINT
addq #4,sp
move.b SftKey(pc),d1 *シフトキー
lsr.b #1,d1
bcc @f
pea ksT3_0(pc)
DOS _PRINT
addq #4,sp
@@:
lsr.b #1,d1
bcc @f
pea ksT3_1(pc)
DOS _PRINT
addq #4,sp
@@:
lsr.b #1,d1
bcc @f
pea ksT3_2(pc)
DOS _PRINT
addq #4,sp
@@:
lsr.b #1,d1
bcc @f
pea ksT3_3(pc)
DOS _PRINT
addq #4,sp
@@:
pea ksTBK1(pc)
DOS _PRINT
addq #4,sp
ksL8:
btst.b #1,KeyMod(pc)
beq @f
pea ksTBK2(pc)
DOS _PRINT
addq #4,sp
@@:
rts
free: *****************************常駐解除
move.l a3,d0
bne @f
pea LR8(pc) **非常駐
bra PE *end
@@: cmpi.w #$3F,d1
beq @f
pea LR4(pc) **ベクタが占領
bra PE *end
@@: suba.l a1,a1
SUPER
movea.l d0,a1
move.l (MSD_JMP-SS)+2(a3),MSD_
move.l (JOYGET_JMP-SS)+2(a3),JOYGET_
move.l (SET232C_JMP-SS)+2(a3),SET232C_
move.l (MS_INIT_JMP-SS)+2(a3),MS_INIT_
move.l (MS_SEL_JMP-SS)+2(a3),MS_SEL_
move.l (MS_LIMIT_JMP-SS)+2(a3),MS_LIMIT_
USER
move.l RSMOD-SS(a3),d1
IOCS _SET232C
sub.l #$00000F0,a3
move.l a3,-(sp)
DOS _MFREE
addq #4,sp
pea LR3(pc)
PE: DOS _PRINT
addq.w #4,sp
DOS _EXIT
_printf_:******************(Cライク)
link a6,#0
movem.l d3-d7/a3-a5,-(sp)
movea.l 8(a6),a4
lea.l 12(a6),a5
moveq #0,d1
moveq #' ',d6
prL1: move.b (a4)+,d1
beq pri_end
cmpi.b #'%',d1
beq pri_kazu
andi.w #$00FF,d1
move.w d1,-(sp)
DOS _PUTCHAR
addq #2,sp
bra prL1
pri_kazu:
move.l (a5)+,d7 *数
move.b (a4)+,d1
beq pri_end
cmpi.b #'2',d1
beq pr_K2
cmpi.b #'3',d1
beq pr_K3
cmpi.b #'4',d1
beq pr_K4
andi.w #$00FF,d1
move.w d1,-(sp)
DOS _PUTCHAR
addq #2,sp
bra prL1
pr_K4:
divu #1000,d7
move.w d7,d1
beq @f
moveq #'0',d6
@@:
add.b d6,d1
andi.w #$00FF,d1
move.w d1,-(sp)
DOS _PUTCHAR
addq #2,sp
swap d7
andi.l #$0000FFFF,d7
pr_K3:
divu #100,d7
move.w d7,d1
beq @f
moveq #'0',d6
@@:
add.b d6,d1
andi.w #$00FF,d1
move.w d1,-(sp)
DOS _PUTCHAR
addq #2,sp
swap d7
andi.l #$0000FFFF,d7
pr_K2:
move.w d7,d1
divu #10,d1
tst.w d1
beq @f
moveq #'0',d6
@@:
add.b d6,d1
andi.w #$00FF,d1
move.w d1,-(sp)
DOS _PUTCHAR
addq #2,sp
swap d1
addi.b #'0',d1
andi.w #$00FF,d1
move.w d1,-(sp)
DOS _PUTCHAR
addq #2,sp
moveq #' ',d6
bra prL1
pri_end:
movem.l (sp)+,d3-d7/a3-a5
unlk a6
rts
LR2: dc.b ' RS-232C PORT の `ArtPad` が使用出来ます。',$0d,$0a,0
.even
LRZSO: .dc.b ' 相対座標モードでマウスエミュレートします。',$0d,$0a,0
.even
LRZZE1: .dc.b ' 絶対座標モード1でマウスエミュレートします。',$0d,$0a,0
.even
LRZZE2: .dc.b ' 絶対座標モード2[%3]でマウスエミュレートします。',$0d,$0a,0
.even
LRZNN: .dc.b ' マウスエミュレートしません。',$0d,$0a,0
.even
LRKP: .dc.b ' 常駐しました。',$0d,$0a,0
.even
LR3: dc.b ' 常駐解除しました。',$0d,$0a,0
.even
LR4: dc.b ' ベクタが占領されています。',$0d,$0a,0
.even
LR5: .dc.b ' 設定を変更しました。',$0d,$0a,0
.even
LR6: .dc.b ' コマンドラインが異常です。',$0d,$0a,0
.even
LR7: .dc.b ' スイッチが異常です。',$0d,$0a,0
.even
LR8: .dc.b ' 常駐していません。',$0d,$0a,0
.even
LRTB: .dc.b " 既に'TBDRV'系のドライバーが常駐しているようです。",$0d,$0a,0
.even
ksT1:
.dc.l ksTSMS1,ksTSMS2,ksTSMS3
ksTSMS1:.dc.b ' 絶対座標範囲はMS_LIMITのよるオートです。',$0d,$0a,0
ksTSMS2:.dc.b ' 絶対座標範囲はCRTMODによるオートです。',$0d,$0a,0
ksTSMS3:.dc.b ' 絶対座標範囲は512x512に固定です。',$0d,$0a,0
.even
ksT2:
.dc.l ksTBM1,ksTBM2,ksTBM3
ksTBM1: .dc.b ' ボタンは ノーマル型 [左=プレス,右=サイドスイッチ] です。',$0d,$0a,0
ksTBM2: .dc.b ' ボタンは リバース型 [左=サイドスイッチ,右=プレス] です。',$0d,$0a,0
ksTBM3: .dc.b ' ボタンは PC-9801P型 [左=プレス,右=サイドスイッチ+プレス] です。',$0d,$0a,0
.even
ksT2PB: .dc.b ' ペン先プレスは[%3]以上で押されたとします。',$0d,$0a,0
.even
ksTBK1: .dc.b '{[XF3]~[XF5]}でマウスエミュレートモードを変更出来ます。',$0d,$0a,0
ksTBK2: .dc.b ' [XF1],[XF2]でX,Yのみ移動出来ます。',$0d,$0a,0
.even
ksT3__: .dc.b ' ',0
ksT3_0: .dc.b '[SHIFT]+',0
ksT3_1: .dc.b '[CTRL]+',0
ksT3_2: .dc.b '[OPT.1]+',0
ksT3_3: .dc.b '[OPT.2]+',0
.even
SwcI: .dc.w 0 :/Iなら -1
LRH:
.dc.b $0d,$0a
.dc.b '使用法:ArtPad.x [switch]',$0d,$0a
.dc.b ' /R ・・・・ 常駐解除します。',$0d,$0a
.dc.b ' /D ・・・・ 相対座標モードでマウスエミュレートします。(def.)',$0d,$0a
.dc.b ' /P ・・・・ 絶対座標モード1でマウスエミュレートします。',$0d,$0a
.dc.b ' /P[n] ・ 最大移動値[n]で絶対座標モード2でマウスエミュレートします。',$0d,$0a
.dc.b ' /N ・・・・ マウスエミュレートはしません。',$0d,$0a
.dc.b ' /S0 ・・・ 絶対座標用。MS_LIMITの範囲による移動範囲を判別。(def.)',$0d,$0a
.dc.b ' /S1 ・・・ 絶対座標用。CRTMODによる移動範囲を判別。',$0d,$0a
.dc.b ' /S2 ・・・ 絶対座標用。512x512画面専用にします。',$0d,$0a
.dc.b ' /B0 ・・・ マウスボタンエミュ ノーマル型 [左=プレス,右=サイドスイッチ] (def.)',$0d,$0a
.dc.b ' /B1 ・・・ マウスボタンエミュ リバース型 [左=サイドスイッチ,右=プレス]',$0d,$0a
.dc.b ' /B2 ・・・ マウスボタンエミュ PC-9801P型 [左=プレス,右=サイドスイッチ+プレス]',$0d,$0a
.dc.b ' /BP[n] マウスボタンエミュ ペン先プレスが[n]以上(16~100)で押したとします。',$0d,$0a
.dc.b ' /K0 ・・・ キーによる割り込み無し。',$0d,$0a
.dc.b ' /K1 ・・・ キーによるモード変更のみ。',$0d,$0a
.dc.b ' /K2 ・・・ キーによる水平垂直移動制限機能のみ。',$0d,$0a
.dc.b ' /K3 ・・・ キーによる機能あり。(def.)',$0d,$0a
.dc.b ' /KS[n] キー機能のシフトキー設定(def.8 = [OPT2])',$0d,$0a
*.dc.b ' /I ・・・・ 'TBDRV'系のドライバがあっても常駐する。',$0d,$0a
*.dc.b $0d,$0a
*.dc.b ' TABLET CALL Ver. 0.92
.dc.b $0d,$0a,0
.even
LR1: .dc.b 'X68k WACOM mini tablet `ArtPad` DRIVER Version 0.53 Copyright 1994 TNB製作所',$0d,$0a,0
.even
.ds.b 2048
usrsp: